/*
 * create by Littleken at 2019/1/14 10:02
 */
package com.littleken.util;


import com.alibaba.fastjson.JSON;

import java.util.HashMap;
import java.util.Map;

/**
 * json数据处理，用于json请求返回
 * littleken
 */
public class JsonData {
    public boolean isRet() {
        return ret;
    }

    public void setRet(boolean ret) {
        this.ret = ret;
    }

    public String getMsg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }

    public Object getData() {
        return data;
    }

    public void setData(Object data) {
        this.data = data;
    }

    //返回结果 true成功 false失败
    private boolean ret;
    //返回信息
    private String msg;
    //返回数据
    private Object data;

    public JsonData(boolean ret) {
        this.ret = ret;
    }





    //空成功返回
    public static JsonData success() {
        return new JsonData(true);
    }

    //成功返回msg
    public static JsonData success(String msg) {
        JsonData jsonData = new JsonData(true);
        jsonData.msg = msg;
        return jsonData;
    }

    //成功返回object
    public static JsonData success(Object object) {
        JsonData jsonData = new JsonData(true);
        jsonData.data = object;
        return jsonData;
    }

    //成功返回object与msg
    public static JsonData success(Object object, String msg) {
        JsonData jsonData = new JsonData(true);
        jsonData.data = object;
        jsonData.msg = msg;
        return jsonData;
    }

    //失败返回msg
    public static JsonData fail(String msg) {
        JsonData jsonData = new JsonData(false);
        jsonData.msg = msg;
        return jsonData;
    }

    //把json数据转回成map格式返回
    //由于ModelAndView需要传入Map型参数列表，故加入此方法
    public Map<String, Object> toMap() {
        HashMap<String, Object> result = new HashMap<String, Object>();
        result.put("ret", ret);
        result.put("msg", msg);
        result.put("data", data);
        return result;
    }

    @Override
    public String toString() {
        return JSON.toJSONString(this);
    }
}
